The present invention relates to a method of supporting program testing and debugging operations, and more particularly, to a method of successively displaying an execution history of a program under execution and the processing results thereof and a method of preserving, retrieving and displaying execution results.
Generally in a program debugging operation, a variety of methods and software tools are employed for verifying the behavior of a program, finding out the cause of an error, if one occurs, and so on.
As a means for supporting this debugging operation, there is conventionally known a step execution function for executing a program one step at a time to output the results of respective steps in order. This means is effective in understanding the behavior of a program and narrowing down bug occurring locations on the basis of the behavior information.
For further facilitating the understanding of an execution process of such a step execution, a method is known which specifically shows an executed location of a source program on the screen of a display so as to allow an execution process of the program to be monitored on the screen, as introduced by a literature entitled "Program Developing Environment of LISP/VM" (Symbol Processing Study Group Report 31, Information Processing Engineer's Society (March, 1985)).
Also, a literature entitled "Development Idea and Functions of SEWB" (Hitachi Review Vol. 70, No. 2 (February, 1988) describes a method for displaying a source program in a visual form, wherein a figure corresponding to each execution step of the program is specifically shown in a sequence manner as the program is running, while contents of variables associated with the shown program are displayed in an area separate from that of the program in conformity with the execution.
Alternatively, there is also a conventional method which previously (i.e., prior to program execution), inserts an execution statement for printing contents of execution in progress in a related portion of a program so as to print out information related to the execution in progress. Also, widely employed is a supporting method which sets a break point in a program for interrupting the execution thereof to re-execute the program such that related information is referenced and outputted when the program is stopped at the break point. Further, a method is implemented which specifies a trace and output of arguments and return values (results) of respective modules constituting a program and re-executes the program while tracing and outputting such related information.
To facilitate the above-mentioned operations, co-pending U.S. Patent application Ser. No. 507,391 filed on Apr. 10, 1990 proposed a method of preserving the progress of a program under execution (trace information) and retrieving and displaying such information. Specifically, this patent document describes a method of specifying an objective module to be traced utilizing a module relation diagram illustrating a program calling hierarchy; a method of specifying on a module relation diagram a module whose execution history is desired to be retrieved and displayed and displaying the execution history of the specified module; and a method of indicating variables commonly used in different modules to display a source program of a module referencing and modifying the variables and the position of the module on the module relation diagram. This document also describes a method of displaying a module relation diagram and source programs such that the currently executed location is displayed thereon, while data related to the execution is displayed in a separate area, as the execution of the program progresses.
On the other hand, for displaying an execution progress of a program itself, that is, the order of executing modules till a predetermined time (e.g., a time at which an error has occurred), there is known, for example, a back trace function in the LISP language or a function of displaying contents of a control stack at a certain time.
Further, U.S. Pat. No. 4,730,315 to Saitot discloses a simultaneous display of a program together with related variables on the same screen.
Japanese Patent Application Laid-open No. JP-A-2-210556 discloses a visualization apparatus for program execution.